﻿<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <script>
          // 正则 就是判断字符串的条件
        var str = "2a4a67";
        // var reg = new RegExp();
        // 修饰符 是写在正则的最后面
        // g 是全局匹配
        // i 不区分大小写
        // m 多行匹配
        var reg = /a/g;  //当前字符串是否包含a
        // 正则对象.test() 返回验证是否正确 true/false
        // var res = reg.test(str);
        // console.log(res);

        // 以迭代的形式获取到匹配的值与值的索引值
        // 需要结合 修饰符g使用
        // res = reg.exec(str);
        // console.log(res); //第一个符合的a

        // res = reg.exec(str);
        // console.log(res); //弟2个符合的a

        // res = reg.exec(str);
        // console.log(res); //null

        str = "2a4a67";
        // var res = str.replace("4","b");  //替换
        var res = str.replace(reg, "b");
        console.log(res);

        res = str.split(reg); //转换为数组
        console.log(res);

        res = str.search(reg);//返回第一个a的索引值
        console.log(res);

        res = str.match(reg);//返回全部的a
        console.log(res);



        var str = "qwertyu";

        var reg = /a/g; // 是否包含a
        var res = reg.test(str);
        console.log(res); //false

        reg = /wet/g; // 是否包含wet
        res = reg.test(str);
        console.log(res); //false

        // [] 包裹一个字符的条件
        reg = /[wet]/g; // 包含有一个w或e或t
        res = reg.test(str);
        console.log(res); //true

        reg = /[w|e|t]/g; // 包含有一个w或e或t
        res = reg.test(str);
        console.log(res); //true

        reg = /w|e|t/g; // 包含有一个w或e或t
        res = reg.test(str);
        console.log(res); //true

        str = "qwerty3u";

        reg = /[0-9]/g; // 包含有一个数字 
        res = reg.test(str);
        console.log(res); //true


        reg = /^[0-9]/g; // 必须是以数字开头的字符串
        res = reg.test(str);
        console.log(res); //false

        str = "123";
        reg = /[^0-9]/g; // 必须是包含有一个非数字
        res = reg.test(str);
        console.log(res); //false

        str = ";123";
        reg = /^[^0-9]/g; // 必须是包含有一个非数字为开头
        res = reg.test(str);
        console.log(res); //true

        str = ";123";
        reg = /[0-9]$/g; // 必须是以数字为结尾
        res = reg.test(str);
        console.log(res); //true

        str = "1";
        reg = /^[0-9]$/g; // 必须是以一个数字为开头并结尾
        res = reg.test(str);
        console.log(res); //true


        // {}是给前面挨着的字符条件设置数量
        // {n,m}  最少n 最多m
        // {n}  出现n
        // {n,}  最少n 没有最多
        // *  === {0,}
        // +  === {1,}
        // ?  === {0,1}
        str = "123";
        // reg = /^[0-9]{2,}$/g; // 必须是以一个数字为开头并结尾
        reg = /^[0-9]?$/g; // 必须是以一个数字为开头并结尾
        res = reg.test(str);
        console.log(res); //true

        reg = /[a-zA-Z]/g; // 必须是包含一个字母
        res = reg.test(str);
        console.log(res); //false

        // \d === [0-9]
        // \D === [^0-9]
        // \w == [a-zA-Z0-9_]
        // \W == [^a-zA-Z0-9_]
        reg = /\d/g; // 
        res = reg.test(str);
        console.log(res); //true

        reg = /\w/g; // 
        res = reg.test(str);
        console.log(res); //true
    </script>
</body>
</html>